Enum
Les énumérations (ou enum) en Java sont un outil puissant pour représenter un ensemble fixe de constantes nommées. Elles offrent une manière plus sûre et plus lisible de travailler avec des valeurs prédéfinies, comparé à l'utilisation de constantes entières ou de chaînes de caractères.
Qu'est-ce qu'une énumération ?
Une énumération est un type de données spécial qui représente un ensemble de valeurs constantes nommées. Chaque valeur de l'énumération est un objet unique et immuable. Les énumérations sont déclarées à l'aide du mot-clé enum, suivi du nom de l'énumération et d'une liste de valeurs séparées par des virgules.
Exemple d'une énumération
public enum JourDeLaSemaine {
LUNDI,
MARDI,
MERCREDI,
JEUDI,
VENDREDI,
SAMEDI,
DIMANCHE
}
Dans cet exemple, JourDeLaSemaine est une énumération qui représente les jours de la semaine. Chaque jour est une valeur constante de l'énumération.
Utilisation des énumérations
Vous pouvez utiliser les énumérations comme n'importe quel autre type de données en Java. Vous pouvez déclarer des variables de type énumération, les comparer, les utiliser dans des instructions switch, etc.
JourDeLaSemaine aujourdhui = JourDeLaSemaine.MARDI;
if (aujourdhui == JourDeLaSemaine.MARDI) {
System.out.println("C'est mardi !");
}
switch (aujourdhui) {
case LUNDI:
System.out.println("C'est le début de la semaine.");
break;
// ...
}
Fonctions des énumérations
Les énumérations en Java sont plus que de simples listes de constantes. Elles peuvent avoir des champs, des méthodes et même implémenter des interfaces.
-
Champs : Vous pouvez ajouter des champs à une énumération pour stocker des informations supplémentaires sur chaque valeur.
public enum Couleur {ROUGE("#FF0000"),VERT("#00FF00"),BLEU("#0000FF");private String codeHexadecimal;Couleur(String codeHexadecimal) {this.codeHexadecimal = codeHexadecimal;}public String getCodeHexadecimal() {return codeHexadecimal;}} -
Méthodes : Vous pouvez ajouter des méthodes à une énumération pour effectuer des opérations sur les valeurs.
public enum Taille {PETIT(10),MOYEN(20),GRAND(30);private int valeur;Taille(int valeur) {this.valeur = valeur;}public int getValeur() {return valeur;}}